type Chainable<Pre = {}> = {
    option<K extends string,V>(key: K extends keyof Pre ? never : K , value: V): Chainable<Pre & { [k in K]:V }>;
    get(): Pre
}